560 ON A-64 GOTO *A,*B,*C,*D,*E,*F,*G,*H,*I,*J,*K,*L,*M,*N,*O,*P,*Q,*R,*S,*T,*U,*V,*W,*X,*Y,*Z
600 *OTHER
610 GOTO *UNKNOWNERROR
700 *CMDSEARCH
710 READ N:CMDL=0:CMD=0:CMDF=0
720 FOR A=0 TO N-1:READ DUM$,DUM1$:DUM=VAL("&H"+DUM1$):IF DUM$=MID$(L$,L,LEN(DUM$)) THEN CMDL=LEN(DUM$):CMD=DUM:CMDF=A+1
730 NEXT
740 IF CMD=0 THEN *UNKNOWNERROR
750 L=L+CMDL
760 RETURN
800 *NUMSEARCH
810 N$="":WHILE (" "<>MID$(L$,L,1) AND L<=LEN(L$)):N$=N$+MID$(L$,L,1):L=L+1:WEND:N=VAL(N$):RETURN
850 *LAYERSEARCH
860 IF INSTR("01",MID$(L$,L,1))=0 THEN *LAYERERROR ELSE N$=MID$(L$,L,1):N=VAL(N$):L=L+1:RETURN
900 *DELSPACE:WHILE (" "=MID$(L$,L,1) AND L<=LEN(L$)):L=L+1:WEND:A$=MID$(L$,L,1):A=ASC(A$):RETURN
950 *REMOVESPACE:M$=RIGHT$(L$,LEN(L$)-L+1):L$="":FOR A=1 TO LEN(M$):IF " "<>MID$(M$,A,1) THEN L$=L$+MID$(M$,A,1)
960 NEXT:L=1:RETURN
1000 *A
1010 GOTO *UNKNOWNERROR
2000 *B
2010 RESTORE 2900:GOSUB *CMDSEARCH
2020 ON CMDF GOTO *BKGND,*BEGIN,*BOX,*BUTTON,*BUTTON
2100 *BKGND
2110 GOSUB *DELSPACE
2120 B=A:IF A=64 THEN CMD=CMD+1:L=L+1:GOSUB *DELSPACE
2130 IF B<>64 THEN IF INSTR("1234567890",A$)=0 THEN ALM$="@が指定されていないのにファイル名と思われるパラメータが指定されています。コマンドを置き換えますか? (取消/実行)":GOSUB *ALART:IF YN=0 THEN CMD=CMD+1:B=64
2140 PRINT #2,CHR$(CMD);:IF B=64 THEN GOSUB *PUTFILE:GOTO 2160
13120 IF "ON"=MID$(L$,L,2) THEN EF=&H80:GOTO 13190
13130 IF "OFF"=MID$(L$,L,3) THEN EF=&H81:GOTO 13190
13190 PRINT #2,CHR$(CMD,EF);:GOTO *MAIN
13500 *MUSIC
13510 GOSUB *DELSPACE
13520 IF "PAUSE"=MID$(L$,L,5) THEN EF=&H70:GOTO 13590
13530 IF "STOP"=MID$(L$,L,4) THEN EF=&H71:GOTO 13590
13540 IF "RESTART"=MID$(L$,L,7) THEN EF=&H72:GOTO 13590
13550 IF "LOOP"=MID$(L$,L,4) THEN L=L+4:GOSUB *DELSPACE:IF "OFF"=MID$(L$,L,3):EF=&H78 ELSE IF "ON"=MID$(L$,L,2):EF=&H79:GOTO 13590
13580 GOTO *UNKNOWNERROR
13590 PRINT #2,CHR$(CMD,EF);:GOTO *MAIN
13900 DATA 2
13910 DATA "MOUSE","2C", "MUSIC","5A"
14000 *N
14010 RESTORE 14900:GOSUB *CMDSEARCH
14020 ON CMDF GOTO *NEXT
14100 *NEXT
14110 PRINT #2,CHR$(CMD);:GOTO *MAIN
14900 DATA 1
14910 DATA "NEXT","29"
15000 *O
15010 RESTORE 15900:GOSUB *CMDSEARCH
15020 ON CMDF GOTO *OBJECT
15100 *OBJECT
15110 GOSUB *DELSPACE
15120 B=A:IF A=64 THEN CMD=CMD+1:L=L+1:GOSUB *DELSPACE
15130 IF B<>64 THEN IF INSTR("1234567890",A$)=0 THEN ALM$="@が指定されていないのにファイル名と思われるパラメータが指定されています。コマンドを置き換えますか? (取消/実行)":GOSUB *ALART:IF YN=0 THEN CMD=CMD+1:B=64
15140 PRINT #2,CHR$(CMD);:IF B=64 THEN GOSUB *PUTFILE:GOTO 15160
15150 GOSUB *NUMSEARCH:PRINT #2,CHR$(N);
15160 GOTO *MAIN
15900 DATA 1
15910 DATA "OBJECT","54"
16000 *P
16010 RESTORE 16900:GOSUB *CMDSEARCH
16020 ON CMDF GOTO *PALETTE,*PAN,*PLAY,*POINT,*PUT
16100 *PALETTE
16110 GOSUB *DELSPACE:IF "@"=MID$(L$,L,1) THEN L=L+1:GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PRINT #2,CHR$(CMD,(N OR &H80));:GOTO *MAIN
16210 GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PA=N:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,CHR$(CMD,((PA*16) OR N));:FOR BBB=0 TO 1:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,FNO$(N);:NEXT:GOTO *MAIN
16300 *PLAY
16320 GOSUB *DELSPACE:B=A:IF A=64 THEN CMD=CMD+1:L=L+1:GOSUB *DELSPACE
16330 IF B<>64 THEN IF INSTR("1234567890",A$)=0 THEN ALM$="@が指定されていないのにファイル名と思われるパラメータが指定されています。コマンドを置き換えますか? (取消/実行)":GOSUB *ALART:IF YN=0 THEN CMD=CMD+1:B=64
16340 PRINT #2,CHR$(CMD);:IF B=64 THEN GOSUB *PUTFILE:GOTO 16360
16350 GOSUB *NUMSEARCH:PRINT #2,CHR$(N);
16360 GOTO *MAIN
16400 *POINT
16410 GOSUB *DELSPACE:IF "SET"<>MID$(L$,L,3) THEN *UNKNOWNERROR
19420 B=A:IF A=64 THEN CMD=CMD+1:L=L+1:GOSUB *DELSPACE
19430 IF B<>64 THEN IF INSTR("1234567890",A$)=0 THEN ALM$="@が指定されていないのにファイル名と思われるパラメータが指定されています。コマンドを置き換えますか? (取消/実行)":GOSUB *ALART:IF YN=0 THEN CMD=CMD+1:B=64
19440 PRINT #2,CHR$(CMD);:IF B=64 THEN GOSUB *PUTFILE:GOTO 19460
19450 GOSUB *NUMSEARCH:PRINT #2,CHR$(N);
19460 GOSUB *DELSPACE:IF "PCM7"=MID$(L$,L,4) THEN EF=&H46:GOTO 19490
19470 IF "PCM8"=MID$(L$,L,4) THEN EF=&H47:GOTO 19490
19480 GOTO *PARAERROR
19490 PRINT #2,CHR$(EF);:GOTO *MAIN
19500 *STRING
19510 GOSUB *DELSPACE
19520 IF "CLEAR"=MID$(L$,L,5) THEN L=L+5:CMD=&H44:GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PRINT #2,CHR$(CMD,N);:GOTO *MAIN
19530 IF "COLOR"=MID$(L$,L,5) THEN L=L+5:CMD=&H42:GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PRINT #2,CHR$(CMD,N);:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,FNO$(N);:GOTO *MAIN
19540 IF "VIEW"<>MID$(L$,L,4) THEN 19650
19550 L=L+4:CMD=&H43:GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PRINT #2,CHR$(CMD,N);:FOR BBB=0 TO 3:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,FNO$(N);:NEXT:FOR BBB=0 TO 3:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,CHR$(N);:NEXT
19560 GOSUB *DELSPACE:IF "SCROLL"=MID$(L$,L,6) THEN EF=&H30:PA=0:GOTO 19620
19570 IF "SMOOTH"=MID$(L$,L,6) THEN EF=&H31:PA=0:GOTO 19620
19580 IF "CLEAR"=MID$(L$,L,5) THEN L=L+5:EF=&H32:PA=1:GOTO 19620
19590 'IF "KEY"=MID$(L$,L,3) THEN L=L+3:EF=&H33:PA=1:GOTO 19620
19600 'IF "PAD"=MID$(L$,L,3) THEN L=L+3:EF=&H34:PA=1:GOTO 19620
19610 IF "MOUSE"=MID$(L$,L,5) THEN L=L+5:EF=&H35:PA=0
19620 PRINT #2,CHR$(EF);:IF PA=0 THEN *MAIN ELSE FOR A=1 TO PA:GOSUB *DELSPACE:PRINT #2,A$;:L=L+1:NEXT:GOTO *MAIN
23420 IF "LOCATE"=MID$(L$,L,6) THEN L=L+6:CMD=&H45:GOSUB *DELSPACE:GOSUB *LAYERSEARCH:PRINT #2,CHR$(CMD,N);:FOR BBB=0 TO 1:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,FNO$(N);:NEXT:GOTO *MAIN
23460 IF "TRUE"=MID$(L$,L,4) THEN L=L+4:PRINT #2,CHR$(&H30);:GOTO *TLOOP
23470 IF "BOLD"=MID$(L$,L,4) THEN L=L+4:PRINT #2,CHR$(&H31);:GOTO *TLOOP
23480 IF "ITALIC"=MID$(L$,L,6) THEN L=L+6:PRINT #2,CHR$(&H32);:GOTO *TLOOP
23490 IF "SHADOW"=MID$(L$,L,6) THEN L=L+6:PRINT #2,CHR$(&H33);:GOTO *TLOOP
23500 IF "OUTLINE"=MID$(L$,L,7) THEN L=L+7:PRINT #2,CHR$(&H34);:GOTO *TLOOP
23510 IF "UNDERLINE"=MID$(L$,L,9) THEN L=L+9:PRINT #2,CHR$(&H35);:GOTO *TLOOP
23520 IF "OVERLINE"=MID$(L$,L,8) THEN L=L+8:PRINT #2,CHR$(&H36);:GOTO *TLOOP
23530 IF "STRIKETHROUGH"=MID$(L$,L,13) THEN L=L+13:PRINT #2,CHR$(&H37);:GOTO *TLOOP
23540 IF "ANK"=MID$(L$,L,3) THEN L=L+3:GOSUB *DELSPACE:IF "ZOOM"<>MID$(L$,L,4) THEN *PARAERROR ELSE L=L+4:PRINT #2,CHR$(&H58);:FOR BBB=0 TO 1:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,CHR$(N);:NEXT:GOTO *TLOOP
23550 IF "KANJI"=MID$(L$,L,5) THEN L=L+5:GOSUB *DELSPACE:IF "ZOOM"<>MID$(L$,L,4) THEN *PARAERROR ELSE L=L+4:PRINT #2,CHR$(&H59);:FOR BBB=0 TO 1:GOSUB *DELSPACE:GOSUB *NUMSEARCH:PRINT #2,CHR$(N);:NEXT:GOTO *TLOOP
23560 IF "TEXT"=MID$(L$,L,4) THEN L=L+4:GOSUB *DELSPACE
23570 IF "SPACE"=MID$(L$,L,5) THEN L=L+5:GOSUB *DELSPACE:IF "NOMAL"=MID$(L$,L,5) THEN PRINT #2,CHR$(&H51);:GOTO *TLOOP ELSE GOSUB *NUMSEARCH:PRINT #2,CHR$(&H50,N);:GOTO *TLOOP
23580 EF=&H40
23590 IF "DISPLAY"=MID$(L$,L,7) THEN L=L+7:EF=&H48:GOSUB *DELSPACE
23600 IF "DIRECTION"=MID$(L$,L,9) THEN L=L+9:GOTO 23630
23610 IF "DIR"=MID$(L$,L,3) THEN L=L+3:GOTO 23630
23620 GOTO *PARAERROR
23630 GOSUB *DELSPACE:IF "NOMAL"=MID$(L$,L,5) OR "RIGHT"=MID$(L$,L,5) THEN 23680
23640 IF "UP"=MID$(L$,L,2) THEN EF=EF+1:GOTO 23680
23650 IF "LEFT"=MID$(L$,L,4) THEN EF=EF+2:GOTO 23680
23660 IF "DOWN"=MID$(L$,L,4) THEN EF=EF+3:GOTO 23680
23670 GOTO *PARAERROR
23680 PRINT #2,CHR$(EF);:GOTO *TLOOP
23690 *TLOOP
23700 GOSUB *DELSPACE:WEND
23710 PRINT #2,CHR$(&HFD);:GOTO *MAIN
23900 DATA 3
23910 DATA "WAIT","50", "WIPE","3D", "WRITE","45"
24000 *X
24010 GOTO *UNKNOWNERROR
25000 *Y
25010 GOTO *UNKNOWNERROR
26000 *Z
26010 RESTORE 26900:GOSUB *CMDSEARCH
26020 ON CMDF GOTO *ZOOM
26100 *ZOOM
26110 GOSUB *DELSPACE
26120 IF INSTR("01",A$)<>0 THEN 26150
26130 IF "WITH"=MID$(L$,L,4) THEN L=L+4:GOSUB *DELSPACE:IF "VIEW"=MID$(L$,L,4) THEN L=L+4:CMD=&H59:GOSUB *DELSPACE:GOTO 26150